home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FishMarket 1.0
/
FishMarket v1.0.iso
/
fishies
/
001-025
/
disk_004
/
kermit
/
main.c
< prev
next >
Wrap
C/C++ Source or Header
|
1992-05-06
|
2KB
|
134 lines
/* @(#)main.c 1.1 1/26/85 */
#include "kermit.h"
#include "errors.h"
static int rflg = 0;
static int Rflg = 0;
static int sflg = 0;
static VOID OpenRemote ();
static VOID Options ();
static VOID CleanUp ();
/*
* K e r m i t
*
* Main routine - parse command and option, set up the
* tty lines and dispatch to the appropriate routine.
*/
main (argc, argv)
int argc;
char *argv[];
{
DBUG_ENTER ("main");
DBUG_PROCESS (argv[0]);
Options (argc, argv);
OpenRemote ();
SetSpeed ();
GetModes ();
SetUp ();
if (cflg) {
Connect ();
} else if (sflg) {
Send (argv);
} else if (rflg) {
Receive ();
}
CleanUp ();
DBUG_RETURN (0);
}
/*
* Note that if we are a remote kermit then file with
* descriptor 0 is used to read/write packets.
*/
static VOID OpenRemote ()
{
DBUG_ENTER ("OpenRemote");
if (!Rflg) {
host = TRUE;
DBUG_2 ("host", "we are a host kermit");
} else {
remtty = TERMINAL;
host = FALSE;
DBUG_2 ("host", "we are a remote kermit");
}
DBUG_3 ("tty", "open '%s' as communications port", remtty);
remfd = open (remtty, 2, 0777);
if (remfd < 0) {
Error (REMTTY, remtty);
WrapUp (1);
}
DBUG_VOID_RETURN;
}
static VOID Options (argc, argv)
int argc;
char *argv[];
{
register int fchar;
extern char *optarg;
extern int getopt ();
DBUG_ENTER ("options");
if (argc < 2) {
Usage ();
}
while ((fchar = getopt (argc, argv, "#:hcstrRme:l:b:p:")) != EOF) {
switch (fchar) {
case '#':
DBUG_PUSH (optarg);
break;
case 'h':
Help ();
exit (0);
case 'c':
cflg++;
break;
case 'm':
mflg++;
break;
case 's':
sflg++;
break;
case 't':
tflg++;
break;
case 'r':
rflg++;
break;
case 'R':
Rflg++;
break;
case 'e':
escchr = atoi (optarg);
DBUG_3 ("args", "esc char is %o", escchr);
break;
case 'l':
remtty = optarg;
DBUG_3 ("args", "remote tty line is %s", remtty);
break;
case 'p':
photo = optarg;
DBUG_3 ("args", "photo file is %s", photo);
break;
case 'b':
NewSpeed (atoi (optarg));
DBUG_3 ("args", "speed is %d baud", optarg);
break;
}
}
if ((cflg + sflg + rflg) != 1) {
Error (MODE);
WrapUp (1);
}
DBUG_VOID_RETURN;
}